// Delphi 1
{$IFDEF VER80}
  {$DEFINE DELPHI1}
  {$DEFINE DELPHI1_OR_ABOVE}
{$ENDIF}

// Delphi 2
{$IFDEF VER90}
  {$DEFINE DELPHI2}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
{$ENDIF}

// Delphi 3
{$IFDEF VER100}
  {$DEFINE DELPHI3}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
{$ENDIF}

// Delphi 4
{$IFDEF VER120}
  {$DEFINE DELPHI4}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
{$ENDIF}

// Delphi 5
{$IFDEF VER130}
  {$DEFINE DELPHI5}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
  {$DEFINE DELPHI5_OR_ABOVE}
{$ENDIF}

// Delphi 6
{$IFDEF VER140}
  {$DEFINE DELPHI6}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
  {$DEFINE DELPHI5_OR_ABOVE}
  {$DEFINE DELPHI6_OR_ABOVE}
{$ENDIF}

// Delphi 7
{$IFDEF VER150}
  {$DEFINE DELPHI7}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
  {$DEFINE DELPHI5_OR_ABOVE}
  {$DEFINE DELPHI6_OR_ABOVE}
  {$DEFINE DELPHI7_OR_ABOVE}
{$ENDIF}

// Delphi 8
{$IFDEF VER160}
  {$DEFINE DELPHI8}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
  {$DEFINE DELPHI5_OR_ABOVE}
  {$DEFINE DELPHI6_OR_ABOVE}
  {$DEFINE DELPHI7_OR_ABOVE}
  {$DEFINE DELPHI8_OR_ABOVE}
{$ENDIF}

// Delphi 2005 (Delphi 9)
{$IFDEF VER170}
  {$DEFINE DELPHI2005}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
  {$DEFINE DELPHI5_OR_ABOVE}
  {$DEFINE DELPHI6_OR_ABOVE}
  {$DEFINE DELPHI7_OR_ABOVE}
  {$DEFINE DELPHI8_OR_ABOVE}
  {$DEFINE DELPHI2005_OR_ABOVE}
{$ENDIF}

// Delphi 2006 (Delphi 10)
{$IFDEF VER180}
  {$DEFINE DELPHI2006}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
  {$DEFINE DELPHI5_OR_ABOVE}
  {$DEFINE DELPHI6_OR_ABOVE}
  {$DEFINE DELPHI7_OR_ABOVE}
  {$DEFINE DELPHI8_OR_ABOVE}
  {$DEFINE DELPHI2005_OR_ABOVE}
  {$DEFINE DELPHI2006_OR_ABOVE}
{$ENDIF}

// Delphi 2007  (Delphi 11)
{$IFDEF VER185}
  {$DEFINE DELPHI2007}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
  {$DEFINE DELPHI5_OR_ABOVE}
  {$DEFINE DELPHI6_OR_ABOVE}
  {$DEFINE DELPHI7_OR_ABOVE}
  {$DEFINE DELPHI8_OR_ABOVE}
  {$DEFINE DELPHI2005_OR_ABOVE}
  {$DEFINE DELPHI2006_OR_ABOVE}
  {$DEFINE DELPHI2007_OR_ABOVE}
{$ENDIF}

// Delphi .NET 2007 (Delphi 11)
{$IFDEF VER190}
  {$DEFINE DELPHIDOTNET_2007}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
  {$DEFINE DELPHI5_OR_ABOVE}
  {$DEFINE DELPHI6_OR_ABOVE}
  {$DEFINE DELPHI7_OR_ABOVE}
  {$DEFINE DELPHI8_OR_ABOVE}
  {$DEFINE DELPHI2005_OR_ABOVE}
  {$DEFINE DELPHI2006_OR_ABOVE}
  {$DEFINE DELPHI2007_OR_ABOVE}
{$ENDIF}

//Delphi 2009  (Delphi 12)
{$IFDEF VER200}
  {$DEFINE DELPHI2009}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
  {$DEFINE DELPHI5_OR_ABOVE}
  {$DEFINE DELPHI6_OR_ABOVE}
  {$DEFINE DELPHI7_OR_ABOVE}
  {$DEFINE DELPHI8_OR_ABOVE}
  {$DEFINE DELPHI2005_OR_ABOVE}
  {$DEFINE DELPHI2006_OR_ABOVE}
  {$DEFINE DELPHI2007_OR_ABOVE}
  {$DEFINE DELPHI2009_OR_ABOVE}
{$ENDIF}

//Delphi 2010  (Delphi 14)
{$IFDEF VER210}
  {$DEFINE DELPHI2010}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
  {$DEFINE DELPHI5_OR_ABOVE}
  {$DEFINE DELPHI6_OR_ABOVE}
  {$DEFINE DELPHI7_OR_ABOVE}
  {$DEFINE DELPHI8_OR_ABOVE}
  {$DEFINE DELPHI2005_OR_ABOVE}
  {$DEFINE DELPHI2006_OR_ABOVE}
  {$DEFINE DELPHI2007_OR_ABOVE}
  {$DEFINE DELPHI2009_OR_ABOVE}
  {$DEFINE DELPHI2010_OR_ABOVE}
{$ENDIF}

//Delphi XE (Delphi 15)
{$IFDEF VER220}
  {$DEFINE DELPHIXE}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
  {$DEFINE DELPHI5_OR_ABOVE}
  {$DEFINE DELPHI6_OR_ABOVE}
  {$DEFINE DELPHI7_OR_ABOVE}
  {$DEFINE DELPHI8_OR_ABOVE}
  {$DEFINE DELPHI2005_OR_ABOVE}
  {$DEFINE DELPHI2006_OR_ABOVE}
  {$DEFINE DELPHI2007_OR_ABOVE}
  {$DEFINE DELPHI2009_OR_ABOVE}
  {$DEFINE DELPHI2010_OR_ABOVE}
  {$DEFINE DELPHIXE_OR_ABOVE}
{$ENDIF}

//Delphi XE2 (Delphi 16)
{$IFDEF VER230}
  {$DEFINE DELPHIXE2}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
  {$DEFINE DELPHI5_OR_ABOVE}
  {$DEFINE DELPHI6_OR_ABOVE}
  {$DEFINE DELPHI7_OR_ABOVE}
  {$DEFINE DELPHI8_OR_ABOVE}
  {$DEFINE DELPHI2005_OR_ABOVE}
  {$DEFINE DELPHI2006_OR_ABOVE}
  {$DEFINE DELPHI2007_OR_ABOVE}
  {$DEFINE DELPHI2009_OR_ABOVE}
  {$DEFINE DELPHI2010_OR_ABOVE}
  {$DEFINE DELPHIXE_OR_ABOVE}
  {$DEFINE DELPHIXE2_OR_ABOVE}
{$ENDIF}

//Delphi XE3 (Delphi 17)
{$IFDEF VER240}
  {$DEFINE DELPHIXE3}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
  {$DEFINE DELPHI5_OR_ABOVE}
  {$DEFINE DELPHI6_OR_ABOVE}
  {$DEFINE DELPHI7_OR_ABOVE}
  {$DEFINE DELPHI8_OR_ABOVE}
  {$DEFINE DELPHI2005_OR_ABOVE}
  {$DEFINE DELPHI2006_OR_ABOVE}
  {$DEFINE DELPHI2007_OR_ABOVE}
  {$DEFINE DELPHI2009_OR_ABOVE}
  {$DEFINE DELPHI2010_OR_ABOVE}
  {$DEFINE DELPHIXE_OR_ABOVE}
  {$DEFINE DELPHIXE2_OR_ABOVE}
  {$DEFINE DELPHIXE3_OR_ABOVE}
{$ENDIF}

//Delphi XE4 (Delphi 18)
{$IFDEF VER250}
  {$DEFINE DELPHIXE4}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
  {$DEFINE DELPHI5_OR_ABOVE}
  {$DEFINE DELPHI6_OR_ABOVE}
  {$DEFINE DELPHI7_OR_ABOVE}
  {$DEFINE DELPHI8_OR_ABOVE}
  {$DEFINE DELPHI2005_OR_ABOVE}
  {$DEFINE DELPHI2006_OR_ABOVE}
  {$DEFINE DELPHI2007_OR_ABOVE}
  {$DEFINE DELPHI2009_OR_ABOVE}
  {$DEFINE DELPHI2010_OR_ABOVE}
  {$DEFINE DELPHIXE_OR_ABOVE}
  {$DEFINE DELPHIXE2_OR_ABOVE}
  {$DEFINE DELPHIXE3_OR_ABOVE}
  {$DEFINE DELPHIXE4_OR_ABOVE}
{$ENDIF}

//Delphi XE5 (Delphi 19)
{$IFDEF VER260}
  {$DEFINE DELPHIXE5}
  {$DEFINE DELPHI1_OR_ABOVE}
  {$DEFINE DELPHI2_OR_ABOVE}
  {$DEFINE DELPHI3_OR_ABOVE}
  {$DEFINE DELPHI4_OR_ABOVE}
  {$DEFINE DELPHI5_OR_ABOVE}
  {$DEFINE DELPHI6_OR_ABOVE}
  {$DEFINE DELPHI7_OR_ABOVE}
  {$DEFINE DELPHI8_OR_ABOVE}
  {$DEFINE DELPHI2005_OR_ABOVE}
  {$DEFINE DELPHI2006_OR_ABOVE}
  {$DEFINE DELPHI2007_OR_ABOVE}
  {$DEFINE DELPHI2009_OR_ABOVE}
  {$DEFINE DELPHI2010_OR_ABOVE}
  {$DEFINE DELPHIXE_OR_ABOVE}
  {$DEFINE DELPHIXE2_OR_ABOVE}
  {$DEFINE DELPHIXE3_OR_ABOVE}
  {$DEFINE DELPHIXE4_OR_ABOVE}
  {$DEFINE DELPHIXE5_OR_ABOVE}
{$ENDIF}